home *** CD-ROM | disk | FTP | other *** search
INI File | 1996-03-25 | 14.3 KB | 910 lines |
- [MainInfo$]
- CCVer=2.1
- Compatible20=0
- Compatible21=1
- UnitName=DBUnEdit
- NewClassName=TDBUndoEdit
- ParentClassName=TCustomEdit
- DefaultPalette=Data Controls
- CopyrightLine=A public domain component
- FormMode=0
- FormFile=
-
- [Units$]
- Lines=13
- L1=WinTypes
- L2=WinProcs
- L3=Messages
- L4=SysUtils
- L5=Classes
- L6=Controls
- L7=Forms
- L8=Graphics
- L9=Stdctrls
- L10=Clipbrd
- L11=DbTables
- L12=DB
- L13=Mask
-
- [ItemList$]
- Create=Method
- Destroy=Method
- OnClick=ExistingEvent
- OnDblClick=ExistingEvent
- OnDragDrop=ExistingEvent
- OnMouseDown=ExistingEvent
- OnMouseMove=ExistingEvent
- OnMouseUp=ExistingEvent
- OnKeyUp=ExistingEvent
- OnKeyDown=ExistingEvent
- OnKeyPress=ExistingEvent
- OnEnter=ExistingEvent
- OnExit=ExistingEvent
- CanUndo=Property
- CanPaste=Property
- CanCutCopy=Property
- Undo=Method
- DataSource=Property
- DataField=Property
- DataChange=Method
- FDataLink=Variable
- UpdateData=Method
- EditingChange=Method
- ActiveChange=Method
- OnChange=ExistingEvent
- FFocused=Variable
- SetFocused=Method
- WMCut=Method
- WMPaste=Method
- CMEnter=Method
- CMExit=Method
- CharCase=Property
- Enabled=Property
- Font=Property
- MaxLength=Property
- Reset=Method
-
- [Global$]
- Descr=Data-aware edit box with undo
- DefaultCode=1
-
- [Code$]
- Lines=0
-
- [Help$]
- Lines=0
-
- [Create]
- Descr=
- DefaultCode=2
- Kind=2
- Header=Create(AOwner: TComponent)
- S=0
- Ov=1
- Mode=2
- WinMessage=
-
- [CreateCode$]
- Lines=7
- L1=begin
- L2=~~~~~inherited Create(AOwner);
- L3=~~~~~AutoInitialize;
- L4=
- L5=~~~~~{ Code to perform other tasks when the component is created }
- L6=
- L7=end;
-
- [CreateHelp$]
- Lines=0
-
- [Destroy]
- Descr=
- DefaultCode=4
- Kind=3
- Header=Destroy
- S=0
- Ov=1
- Mode=2
- WinMessage=
-
- [DestroyCode$]
- Lines=4
- L1=begin
- L2=~~~~~AutoDestroy;
- L3=~~~~~inherited Destroy;
- L4=end;
-
- [DestroyHelp$]
- Lines=0
-
- [OnClick]
- Descr=
- DefaultCode=7
- Ov=0
- P=1
- HandlerDecl=Click
-
- [OnClickCode$]
- Lines=4
- L1=begin
- L2=~~~~~{ Call method of parent class }
- L3=~~~~~inherited Click;
- L4=end;
-
- [OnClickHelp$]
- Lines=0
-
- [OnDblClick]
- Descr=
- DefaultCode=8
- Ov=0
- P=1
- HandlerDecl=DblClick
-
- [OnDblClickCode$]
- Lines=0
-
- [OnDblClickHelp$]
- Lines=0
-
- [OnDragDrop]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=DragDrop(DragObject: TObject; X, Y: Integer)
-
- [OnDragDropCode$]
- Lines=0
-
- [OnDragDropHelp$]
- Lines=0
-
- [OnMouseDown]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer)
-
- [OnMouseDownCode$]
- Lines=0
-
- [OnMouseDownHelp$]
- Lines=0
-
- [OnMouseMove]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=MouseMove(Shift: TShiftState; X, Y: Integer)
-
- [OnMouseMoveCode$]
- Lines=0
-
- [OnMouseMoveHelp$]
- Lines=0
-
- [OnMouseUp]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer)
-
- [OnMouseUpCode$]
- Lines=0
-
- [OnMouseUpHelp$]
- Lines=0
-
- [OnKeyUp]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=KeyUp(var Key: Word; Shift: TShiftState)
-
- [OnKeyUpCode$]
- Lines=0
-
- [OnKeyUpHelp$]
- Lines=0
-
- [OnKeyDown]
- Descr=
- DefaultCode=10
- Ov=1
- P=1
- HandlerDecl=KeyDown(var Key: Word; Shift: TShiftState)
-
- [OnKeyDownCode$]
- Lines=26
- L1=begin
- L2=~~~~~{ Key contains the Windows VK_ (virtual key) code of the key
- L3=~~~~~~~that was pressed, such as VK_DELETE.
- L4=
- L5=~~~~~~~Shift is a set containing the state of the Shift, Ctrl, and Alt
- L6=~~~~~~~keys. [ssShift] means only Shift key was down, [ssCtrl] means
- L7=~~~~~~~only Ctrl key was down, [ssAlt] means only Alt key was down,
- L8=~~~~~~~[ssShift, ssCtrl] means Ctrl+Shift, etc.
- L9=
- L10=~~~~~~~Changes in the text of the edit box that are produced here
- L11=~~~~~~~will lead to an OnChange event. Because we call FDataSet.Modified
- L12=~~~~~~~in our Change method, we do not need to call it here. }
- L13=
- L14=~~~~~inherited KeyDown(Key, Shift);
- L15=~~~~~case Key of
- L16=~~~~~VK_BACK, VK_DELETE : { Backspace, DEL keys }
- L17=~~~~~~~~~~~~~~~begin
- L18=~~~~~~~~~~~~~~~FDataLink.Edit
- L19=~~~~~~~~~~~~~~~end;
- L20=~~~~~VK_INSERT : { INS key }
- L21=~~~~~~~~~~~~~~~begin
- L22=~~~~~~~~~~~~~~~if ssShift in Shift then
- L23=~~~~~~~~~~~~~~~~~~FDataLink.Edit
- L24=~~~~~~~~~~~~~~~end;
- L25=~~~~~end; { case }
- L26=end;
-
- [OnKeyDownHelp$]
- Lines=0
-
- [OnKeyPress]
- Descr=
- DefaultCode=9
- Ov=1
- P=1
- HandlerDecl=KeyPress(var Key : Char)
-
- [OnKeyPressCode$]
- Lines=29
- L1={ Changes in the text of the edit box that are produced here
- L2=~~~will lead to an OnChange event. Because we call FDataSet.Modified
- L3=~~~in our Change method, we do not need to call it here. }
- L4=begin
- L5=~~~~~inherited KeyPress(Key);
- L6=~~~~~{ Define Ctrl-Z as "undo" keystroke }
- L7=~~~~~if Key = ^Z then
- L8=~~~~~~~~begin
- L9=~~~~~~~~{ Undo changes, if any, to memo }
- L10=~~~~~~~~{ Undo method calls FDataLink.Edit }
- L11=~~~~~~~~Undo;
- L12=~~~~~~~~{ Suppress further processing of the char }
- L13=~~~~~~~~Key := #0
- L14=~~~~~~~~end
- L15=~~~~~else
- L16=~~~~~~~~begin
- L17=~~~~~~~~if (Key in [#32..#255]) and (FDataLink.Field <> nil) then
- L18=~~~~~~~~~~~if not FDataLink.Field.IsValidChar(Key) then
- L19=~~~~~~~~~~~Key := #0;
- L20=~~~~~~~~case Key of
- L21=~~~~~~~~~~~~~^H, ^V, ^X, #32..#255 : FDataLink.Edit;
- L22=~~~~~~~~~~~~~#27 : begin
- L23=~~~~~~~~~~~~~~~~~~~FDataLink.Reset;
- L24=~~~~~~~~~~~~~~~~~~~SelectAll;
- L25=~~~~~~~~~~~~~~~~~~~Key := #0
- L26=~~~~~~~~~~~~~~~~~~~end
- L27=~~~~~~~~~end { case }
- L28=~~~~~~~~~end;
- L29=end;
-
- [OnKeyPressHelp$]
- Lines=0
-
- [OnEnter]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=DoEnter
-
- [OnEnterCode$]
- Lines=0
-
- [OnEnterHelp$]
- Lines=0
-
- [OnExit]
- Descr=
- DefaultCode=13
- Ov=0
- P=1
- HandlerDecl=DoExit
-
- [OnExitCode$]
- Lines=3
- L1=begin
- L2=~~~~~inherited DoExit;
- L3=end;
-
- [OnExitHelp$]
- Lines=0
-
- [CanUndo]
- Descr=
- DefaultCode=6
- IN=0
- RO=1
- PropType=Boolean
- PropDefault=
- Quote=0
- RM=1
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [CanUndoCode$]
- Lines=0
-
- [CanUndoReadCode$]
- Lines=3
- L1=begin
- L2=~~~~~Result := (Perform(EM_CANUNDO, 0, 0) <> 0)
- L3=end;
-
- [CanUndoHelp$]
- Lines=0
-
- [CanPaste]
- Descr=
- DefaultCode=6
- IN=0
- RO=1
- PropType=Boolean
- PropDefault=
- Quote=0
- RM=1
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [CanPasteCode$]
- Lines=0
-
- [CanPasteReadCode$]
- Lines=3
- L1=begin
- L2=~~~~~Result := Clipboard.HasFormat(CF_TEXT);
- L3=end;
-
- [CanPasteHelp$]
- Lines=0
-
- [CanCutCopy]
- Descr=
- DefaultCode=6
- IN=0
- RO=1
- PropType=Boolean
- PropDefault=
- Quote=0
- RM=1
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [CanCutCopyCode$]
- Lines=0
-
- [CanCutCopyReadCode$]
- Lines=3
- L1=begin
- L2=~~~~~Result := (SelLength > 0)
- L3=end;
-
- [CanCutCopyHelp$]
- Lines=0
-
- [Undo]
- Descr=Undo the last edit
- DefaultCode=0
- Kind=0
- Header=Undo
- S=0
- Ov=0
- Mode=2
- WinMessage=
-
- [UndoCode$]
- Lines=8
- L1=begin
- L2=~~~~~{ Place dataset into edit mode }
- L3=~~~~~FDataLink.Edit;
- L4=~~~~~{ Send undo command to Windows }
- L5=~~~~~Perform(EM_UNDO, 0, 0);
- L6=~~~~~{ Set Modified flag of dataset }
- L7=~~~~~FDataLink.Modified
- L8=end;
-
- [UndoHelp$]
- Lines=0
-
- [DataSource]
- Descr=
- DefaultCode=6
- IN=0
- RO=0
- PropType=TDataSource
- PropDefault=
- Quote=0
- RM=1
- WM=1
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=FDataLink.DataSource
-
- [DataSourceCode$]
- Lines=4
- L1=begin
- L2=~~~~~{ Set the FDataLink.DataSource property }
- L3=~~~~~FDataLink.DataSource := Value;
- L4=end;
-
- [DataSourceReadCode$]
- Lines=4
- L1=begin
- L2=~~~~~{ Return the FDataLink.DataSource property }
- L3=~~~~~Result := FDataLink.DataSource
- L4=end;
-
- [DataSourceHelp$]
- Lines=0
-
- [DataField]
- Descr=
- DefaultCode=6
- IN=0
- RO=0
- PropType=String
- PropDefault=
- Quote=0
- RM=1
- WM=1
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=FDataLink.FieldName
-
- [DataFieldCode$]
- Lines=4
- L1=begin
- L2=~~~~~{ Set the FDataLink.FieldName property }
- L3=~~~~~FDataLink.FieldName := Value;
- L4=end;
-
- [DataFieldReadCode$]
- Lines=4
- L1=begin
- L2=~~~~~{ Return the FDataLink.FieldName property }
- L3=~~~~~Result := FDataLink.FieldName
- L4=end;
-
- [DataFieldHelp$]
- Lines=0
-
- [DataChange]
- Descr=
- DefaultCode=0
- Kind=0
- Header=DataChange(Sender : TObject)
- S=2
- Ov=0
- Mode=2
- WinMessage=
-
- [DataChangeCode$]
- Lines=26
- L1=begin
- L2=~~~~~{ Respond to OnDataChange events of FDataLink }
- L3=~~~~~{ Update the component based on the status of the field. }
- L4=~~~~~if FDataLink.Field = nil then
- L5=~~~~~~~~{ No field assigned }
- L6=~~~~~~~~begin
- L7=~~~~~~~~{ At design time, show component name }
- L8=~~~~~~~~if csDesigning in ComponentState then
- L9=~~~~~~~~~~~Text := Name
- L10=~~~~~~~~else
- L11=~~~~~~~~~~~Text := '';
- L12=~~~~~~~~{ No limit on text length }
- L13=~~~~~~~~MaxLength := 0
- L14=~~~~~~~~end
- L15=~~~~~else
- L16=~~~~~~~~begin
- L17=~~~~~~~~{ Update component using properties of FDataLink.Field }
- L18=~~~~~~~~Text := FDataLink.Field.DisplayText;
- L19=~~~~~~~~{ For string fields, limit max edit size to max field size }
- L20=~~~~~~~~if FDataLink.Field.DataType = ftString then
- L21=~~~~~~~~~~~MaxLength := FDataLink.Field.Size
- L22=~~~~~~~~else
- L23=~~~~~~~~~~~{ No limit }
- L24=~~~~~~~~~~~MaxLength := 0
- L25=~~~~~~~~end
- L26=end;
-
- [DataChangeHelp$]
- Lines=0
-
- [FDataLink]
- Descr=
- DefaultCode=17
- DataType=TFieldDataLink
- Default=
- Quote=0
- Sc=10
- IsObject=1
- IsSubComponent=0
-
- [FDataLinkCode$]
- Lines=7
- L1=begin
- L2={ Assign handlers }
- L3=OnDataChange := DataChange;
- L4=OnUpdateData := UpdateData;
- L5=OnEditingChange := EditingChange;
- L6=OnActiveChange := ActiveChange;
- L7=end;
-
- [FDataLinkHelp$]
- Lines=0
-
- [UpdateData]
- Descr=
- DefaultCode=0
- Kind=0
- Header=UpdateData(Sender : TObject)
- S=2
- Ov=0
- Mode=2
- WinMessage=
-
- [UpdateDataCode$]
- Lines=8
- L1=begin
- L2=~~~~~{ Respond to OnUpdateData events of FDataLink }
- L3=~~~~~{ The component has altered the data, so update FDataLink.Field.Text
- L4=~~~~~~~here based on properties of the component. The component's
- L5=~~~~~~~methods indicate when a change has occurred by calling
- L6=~~~~~~~FDataLink.Modified. }
- L7=~~~~~FDataLink.Field.Text := Text
- L8=end;
-
- [UpdateDataHelp$]
- Lines=0
-
- [EditingChange]
- Descr=
- DefaultCode=0
- Kind=0
- Header=EditingChange(Sender : TObject)
- S=2
- Ov=0
- Mode=2
- WinMessage=
-
- [EditingChangeCode$]
- Lines=7
- L1=begin
- L2=~~~~~{ Respond to OnEditingChange events of FDataLink }
- L3=~~~~~{ The data source has gone from editing to non-editing,
- L4=~~~~~~~or the reverse; update the component's properties
- L5=~~~~~~~based on the value of FDataLink.Editing. }
- L6=~~~~~ReadOnly := not FDataLink.Editing;
- L7=end;
-
- [EditingChangeHelp$]
- Lines=0
-
- [ActiveChange]
- Descr=
- DefaultCode=0
- Kind=0
- Header=ActiveChange(Sender : TObject)
- S=2
- Ov=0
- Mode=2
- WinMessage=
-
- [ActiveChangeCode$]
- Lines=20
- L1=const
- L2=~~~~~AllFieldTypes = [ftUnknown, ftString, ftSmallint,
- L3=~~~~~~~~~~~~~~~~~~~~~~ftInteger, ftWord, ftBoolean, ftFloat,
- L4=~~~~~~~~~~~~~~~~~~~~~~ftCurrency, ftBCD, ftDate, ftTime,
- L5=~~~~~~~~~~~~~~~~~~~~~~ftDateTime, ftBytes, ftVarBytes, ftBlob,
- L6=~~~~~~~~~~~~~~~~~~~~~~ftMemo, ftGraphic];
- L7=~~~~~IntFieldTypes = [ftSmallInt, ftInteger, ftWord];
- L8=begin
- L9=~~~~~{ Respond to OnActiveChange events of FDataLink }
- L10=~~~~~{ When the dataset becomes active, validate the field type. }
- L11=~~~~~if DataField = '' then
- L12=~~~~~~~~{ No field selected }
- L13=~~~~~~~~Exit;
- L14=~~~~~if FDataLink <> nil then
- L15=~~~~~~~~if FDataLink.Dataset <> nil then
- L16=~~~~~~~~~~~if FDataLink.Dataset.Active then
- L17=~~~~~~~~~~~~~~if FDataLink.Dataset.FieldByName(DataField).DataType
- L18=~~~~~~~~~~~~~~~~~in [ftBlob, ftGraphic] then
- L19=~~~~~~~~~~~~~~~~~raise EDatabaseError.Create('Wrong field type');
- L20=end;
-
- [ActiveChangeHelp$]
- Lines=0
-
- [OnChange]
- Descr=
- DefaultCode=13
- Ov=1
- P=1
- HandlerDecl=Change
-
- [OnChangeCode$]
- Lines=5
- L1=begin
- L2=~~~~~{ Set Modified flag of dataset }
- L3=~~~~~FDataLink.Modified;
- L4=~~~~~inherited Change;
- L5=end;
-
- [OnChangeHelp$]
- Lines=0
-
- [FFocused]
- Descr=
- DefaultCode=17
- DataType=Boolean
- Default=
- Quote=0
- Sc=9
- IsObject=0
- IsSubComponent=0
-
- [FFocusedCode$]
- Lines=0
-
- [FFocusedHelp$]
- Lines=0
-
- [SetFocused]
- Descr=
- DefaultCode=0
- Kind=0
- Header=SetFocused(Value : Boolean)
- S=2
- Ov=0
- Mode=2
- WinMessage=
-
- [SetFocusedCode$]
- Lines=8
- L1=begin
- L2=~~~~~if FFocused <> Value then
- L3=~~~~~~~~begin
- L4=~~~~~~~~FFocused := Value;
- L5=~~~~~~~~Invalidate;
- L6=~~~~~~~~FDataLink.Reset
- L7=~~~~~~~~end
- L8=end;
-
- [SetFocusedHelp$]
- Lines=0
-
- [WMCut]
- Descr=Put data link in edit mode for any clipboard cut operation
- DefaultCode=0
- Kind=0
- Header=WMCut(var Message : TMessage)
- S=2
- Ov=0
- Mode=2
- WinMessage=WM_CUT
-
- [WMCutCode$]
- Lines=4
- L1=begin
- L2=~~~~~FDataLink.Edit;
- L3=~~~~~inherited
- L4=end;
-
- [WMCutHelp$]
- Lines=0
-
- [WMPaste]
- Descr=Put data link in edit mode for any clipboard paste operation
- DefaultCode=0
- Kind=0
- Header=WMPaste(var Message : TMessage)
- S=2
- Ov=0
- Mode=2
- WinMessage=WM_PASTE
-
- [WMPasteCode$]
- Lines=4
- L1=begin
- L2=~~~~~FDataLink.Edit;
- L3=~~~~~inherited
- L4=end;
-
- [WMPasteHelp$]
- Lines=0
-
- [CMEnter]
- Descr=Reset data link whenever component gets focus
- DefaultCode=0
- Kind=0
- Header=CMEnter(var Message : TCMEnter)
- S=2
- Ov=0
- Mode=2
- WinMessage=CM_ENTER
-
- [CMEnterCode$]
- Lines=4
- L1=begin
- L2=~~~~~SetFocused(True);
- L3=~~~~~inherited
- L4=end;
-
- [CMEnterHelp$]
- Lines=0
-
- [CMExit]
- Descr=Update record whenever component loses focus
- DefaultCode=0
- Kind=0
- Header=CMExit(var Message : TCMExit)
- S=2
- Ov=0
- Mode=2
- WinMessage=CM_EXIT
-
- [CMExitCode$]
- Lines=13
- L1=begin
- L2=~~~~~try
- L3=~~~~~~~~FDataLink.UpdateRecord;
- L4=~~~~~except
- L5=~~~~~~~~SelectAll;
- L6=~~~~~~~~SetFocus;
- L7=~~~~~~~~Raise;
- L8=~~~~~end;
- L9=~~~~~SetFocused(False);
- L10=~~~~~SetCursor(0);
- L11=~~~~~{ Call OnExit handler }
- L12=~~~~~DoExit
- L13=end;
-
- [CMExitHelp$]
- Lines=0
-
- [CharCase]
- Descr=
- DefaultCode=6
- IN=1
- RO=0
- PropType=TEditCharCase
- PropDefault=
- Quote=0
- RM=0
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [CharCaseCode$]
- Lines=0
-
- [CharCaseHelp$]
- Lines=0
-
- [Enabled]
- Descr=
- DefaultCode=6
- IN=1
- RO=0
- PropType=Boolean
- PropDefault=
- Quote=0
- RM=0
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [EnabledCode$]
- Lines=0
-
- [EnabledHelp$]
- Lines=0
-
- [Font]
- Descr=
- DefaultCode=6
- IN=1
- RO=0
- PropType=TFont
- PropDefault=
- Quote=0
- RM=0
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [FontCode$]
- Lines=0
-
- [FontHelp$]
- Lines=0
-
- [MaxLength]
- Descr=
- DefaultCode=6
- IN=1
- RO=0
- PropType=Integer
- PropDefault=
- Quote=0
- RM=0
- WM=0
- Hide=0
- DefEdit=1
- All=0
- EC=
- EU=
- Link=
-
- [MaxLengthCode$]
- Lines=0
-
- [MaxLengthHelp$]
- Lines=0
-
- [Reset]
- Descr=
- DefaultCode=0
- Kind=0
- Header=Reset
- S=1
- Ov=0
- Mode=2
- WinMessage=
-
- [ResetCode$]
- Lines=4
- L1=begin
- L2=~~~~~FDataLink.Reset;
- L3=~~~~~SelectAll
- L4=end;
-
- [ResetHelp$]
- Lines=0
-